import request from '@/config/axios'

/**
 * 课程信息
 */
export interface CourseInfoVO {
  /**
   * 课程ID
   */
  id?: number
  /**
   * 课程封面图片
   */
  picUrl?: string
  /**
   * 课程标题
   */
  title?: string
  /**
   * 课程分类ID
   */
  categoryId?: number
  /**
   * 分类路径
   */
  categoryPath?: string
  /**
   * 分类名称路径
   */
  categoryPathName?: string
  /**
   * 主讲人
   */
  speaker?: string
  /**
   * 课时数
   */
  classHourse?: number
  /**
   * 课程价格（分）
   */
  price?: number
  /**
   * 课程编号
   */
  courseCode?: string
  /**
   * 课程简介
   */
  courseIntroduction?: string
  /**
   * 销售量
   */
  sales?: number
  /**
   * 观看次数
   */
  viewTimes?: number
  /**
   * 课程描述图片
   */
  courseDescPic?: string
  /**
   * 课程横幅
   */
  banner?: string
  /**
   * 讲师头像
   */
  headUrl?: string
  /**
   * 创建时间
   */
  createTime?: string
  /**
   * 状态
   */
  enableStatus?: number
}

/**
 * 获取课程分页列表
 */
export const getCourseInfoPage = (params: any) => {
  return request.get({ url: '/course/info/page', params })
}

/**
 * 获取课程详情
 */
export const getCourseInfo = (id: number) => {
  return request.get({ url: `/course/info/get?id=${id}` })
}

/**
 * 创建课程信息
 */
export const createCourseInfo = (data: CourseInfoVO) => {
  return request.post({ url: '/course/info/create', data })
}

/**
 * 更新课程信息
 */
export const updateCourseInfo = (data: CourseInfoVO) => {
  return request.put({ url: '/course/info/update', data })
}

/**
 * 删除课程信息
 */
export const deleteCourseInfo = (id: number) => {
  return request.delete({ url: `/course/info/delete?id=${id}` })
}

/**
 * 课程内容信息
 */
export interface CourseDetailVO {
  /**
   * 内容ID
   */
  id?: number
  /**
   * 课程ID
   */
  courseId?: number
  /**
   * 课程名称
   */
  courseName?: string
  /**
   * 课程类型
   */
  courseType?: string
  /**
   * 是否免费
   */
  isFree?: boolean
  /**
   * 排序
   */
  sortOrder?: number
  /**
   * 课程内容URL
   */
  classInfoUrl?: string
  /**
   * 创建人
   */
  createUser?: string
  /**
   * 创建时间
   */
  createTime?: string
  /**
   * 状态
   */
  enableStatus?: boolean
}

/**
 * 获取课程内容分页列表
 */
export const getCourseDetailPage = (courseId: number, params?: any) => {
  return request.get({ url: '/course/detail/page', params: { courseId, ...params } })
}

/**
 * 创建课程内容
 */
export const createCourseDetail = (data: CourseDetailVO) => {
  return request.post({ url: '/course/detail/create', data })
}

/**
 * 更新课程内容
 */
export const updateCourseDetail = (data: CourseDetailVO) => {
  return request.put({ url: '/course/detail/update', data })
}

/**
 * 删除课程内容
 */
export const deleteCourseDetail = (id: number) => {
  return request.delete({ url: `/course/detail/delete?id=${id}` })
}
